(()=>{
  var app = new Vue({
      el:'#header',
      data:{
          cart:[]//购物车列表
          ,selected_sum_count:0//选中的数量
          ,selected_sum_money:"0.00"//选中的总价
          ,cart_count:0//购物车的数量
          ,click_all:false//全选 和结果晚一步
      }
  });


    //全选事件
    app.all = function () {
        var type = '';
        if(!app.click_all){
            type = true;
            $(':checkbox').prop('checked','checked');
        }
        else{
            type = false;
            $(':checkbox').prop('checked','');
        }

        //添加每个产品的状态
        $.each(app.cart,function (i,n) {//
            $.each(n,function (i2,n2) {
                app.cart[i][i2].state = type;
            })
        });
        app.sum_count();
    };
    
    //商家全选
    app.bus_all = function ($this,$index) {
        var type = '';
        if($this.is(':checked')){//判断是否选中
            type = true;
        }
        else{
            type = false
        }
        $.each(app.cart[$index],function (i,n) {//把商家下面的元素改选状态
            app.cart[$index][i].state = type;
        });
        app.sum_count();
    };

    /**
     * 单个选中产品事件
     * @param index2 自己的坐标
     */
    app.one_select = ($this,index,index2)=>{
        //判断 下面有是否全部选中
        var all_this = $this.parents('.goods-list').find('input[type="checkbox"]');
        if(all_this.slice(1).not(':checked').length == 0){
            all_this.eq(0).prop('checked','checked');
            /*app.cart[index][index2].state = */
        }else{
            all_this.eq(0).prop('checked','');
        }
        app.cart[index][index2].state =$this.is(':checked');
        app.sum_count();
    };

    /**
     * 加减件数
     * @param bo false:减 true:加
     * @param index 父亲坐标
     * @param index2    自己坐标
     */
    app.update_count =(bo,index,index2)=>{
        var this_val = app.cart[index][index2];
        if(!bo){
            --this_val.cartnum;
            this_val.cartnum = Math.max(this_val.cartnum,1);//不能小于零
        }
        else{
            ++this_val.cartnum;
            this_val.cartnum = Math.min(this_val.cartnum,this_val.goods_info[0]);//不能大于库存
        }
        console.log(this_val);
        app.post_update_count(this_val.cartid,this_val.cartnum);
        app.sum_count();
    };

    /**
     * 键盘输入数量 控制不大于库存
     * @param index 父亲坐标
     * @param index2  自己坐标
     */
    app.update_key = (index,index2)=>{
        var this_val = app.cart[index][index2];
        this_val.cartnum = Math.min(this_val.cartnum,this_val.goods_info[0]);//不能大于库存
        app.post_update_count(this_val.catrid,this_val.cartnum);
        app.sum_count();
    };

    //计算选中的数量 价格
    app.sum_count = function () {
            app.selected_sum_money=0;
            app.selected_sum_count=0;
        $.each(app.cart,function (i,n) {
            $.each(app.cart[i],function (i2,n2) {
               if(n2.state){
                   ++app.selected_sum_count;
                   app.selected_sum_money += n2.cartnum * n2.goods_info['1'];//加上选中的价格

               }
            })
        });
        app.selected_sum_money = app.selected_sum_money.toFixed(2);//格式化成0.00

        //判断是不是全选 如果购物车的数量 和选中的数量一样 就是全选
        if(app.selected_sum_count == app.cart_count){
            app.click_all = true;
        }
        else {
            app.click_all = false;
        }
    };

    //删除事件
    app.del = (index,index2)=>{
        //先判父级的里面 是不是只有一个数组 是的话 就删父级
        $.post(DORDER+'/delete_catr',{id:app.cart[index][index2].cartid});
        if(app.cart[index].length == 1){
            app.cart.splice(index,1)
        }else{
            app.cart[index].splice(0,1);
        }
        --app.cart_count;
        app.sum_count();

    };

    /**
     * 发送修改好的件数
     * @param id    产品的id
     * @param count 修改成成的数量
     */
    app.post_update_count = (id,count)=>{
        $.post(DORDER+'/post_cart_updata_count',{id:id,count:count});
    };

    //提交
    app.submit = ()=>{
        if(app.selected_sum_count > 0){
            layer.load(1);
            var html = '';
            $.each(app.cart,function (i,n) {
                $.each(n,function (i2,n2){
                    if(n2.state){
                        html+= ','+n2.cartid;
                    }

                })
            });
            $('#goodsid').val(html = html.replace(/\,/,''));
            $('#form').submit();
        }
    };


    //获取数据
  $.getJSON(DORDER+'/index',{data:1},function (da) {
      $.each(da,function (i,n) {
          $.each(n,function (i2,n2) {//添加一个未选中状态
              da[i][i2].state = false;
              ++app.cart_count;
          })
      });
      app.cart = da;
  })
})();